package com.yu.weixinsms.Model;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@Data
public class MessagePushRequest {


    @JsonProperty("touser")
    private String touser;
    @JsonProperty("template_id")
    private String templateId;
    @JsonProperty("url")
    private String url;
    @JsonProperty("miniprogram")
    private MiniprogramDTO miniprogram;
    @JsonProperty("client_msg_id")
    private String clientMsgId;
    @JsonProperty("data")
    private DataDTO data;

    @NoArgsConstructor
    @Data
    public static class MiniprogramDTO {
        @JsonProperty("appid")
        private String appid;
        @JsonProperty("pagepath")
        private String pagepath;
    }

    @NoArgsConstructor
    @Data
    public static class DataDTO {
        @JsonProperty("date")
        private Keyword1DTO date;
        @JsonProperty("city")
        private Keyword2DTO city;
        @JsonProperty("quality")
        private Keyword3DTO quality;
        @JsonProperty("birthdayCount")
        private Keyword4DTO birthdayCount;
        @JsonProperty("dayCount")
        private Keyword5DTO dayCount;
        @JsonProperty("minCount")
        private Keyword6DTO minCount;
        @JsonProperty("yi")
        private Keyword7DTO yi;
        @JsonProperty("ji")
        private Keyword8DTO ji;




        @NoArgsConstructor
        @Data
        public static class Keyword1DTO {
            @JsonProperty("value")
            private String value;
            @JsonProperty("color")
            private String color;
        }

        @NoArgsConstructor
        @Data
        public static class Keyword2DTO {
            @JsonProperty("value")
            private String value;
            @JsonProperty("color")
            private String color;
        }

        @NoArgsConstructor
        @Data
        public static class Keyword3DTO {
            @JsonProperty("value")
            private String value;
            @JsonProperty("color")
            private String color;
        }
        @NoArgsConstructor
        @Data
        public static class Keyword4DTO {
            @JsonProperty("value")
            private String value;
            @JsonProperty("color")
            private String color;
        }
        @NoArgsConstructor
        @Data
        public static class Keyword5DTO {
            @JsonProperty("value")
            private String value;
            @JsonProperty("color")
            private String color;
        }
        @NoArgsConstructor
        @Data
        public static class Keyword6DTO {
            @JsonProperty("value")
            private String value;
            @JsonProperty("color")
            private String color;
        }
        @NoArgsConstructor
        @Data
        public static class Keyword7DTO {
            @JsonProperty("value")
            private String value;
            @JsonProperty("color")
            private String color;
        }
        @NoArgsConstructor
        @Data
        public static class Keyword8DTO {
            @JsonProperty("value")
            private String value;
            @JsonProperty("color")
            private String color;
        }

    }
}
